package com.todo.strategy.online.iface.response;

import com.todo.common.common.entity.BaseUserVO;
import com.todo.common.common.enums.biz.PrivateTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * @author azhebuxing
 * @date 2024/5/9 17:38
 * @description
 */
@Data
@Schema(title = "用户攻略详情VO", description = "用户攻略详情VO")
public class UserStrategyDetailVO {

    @Schema(title = "用户id", description = "用户id")
    private String strategyId;

    @Schema(title = "用户信息", description = "用户信息")
    private BaseUserVO baseUserVO;

    @Schema(title = "基础信息", description = "基础信息")
    private BaseVO baseVO;

    @Schema(title = "计划集合信息", description = "计划集合信息")
    private PlanSetInfoVO planSetInfoVO;

    @Schema(title = "关联信息", description = "关联信息")
    private List<RelationVO> relationVOList;


    @Data
    public static class RelationVO {

        @Schema(title = "计划关联信息", description = "关联id")
        private PlanRelationInfoVO planRelationInfoVO;

        @Schema(title = "计划内容信息", description = "关联id")
        private PlanContentVO planContentVO;
    }


    @Data
    public static class BaseVO {

        @Schema(title = "计划id", description = "计划id")
        private Long planId;

        @Schema(title = "标题", description = "标题")
        private String title;

        @Schema(title = "出行体验", description = "出行体验")
        private TravelGuide guide;

        @Schema(title = "出行建议", description = "出行建议")
        private Suggest suggest;

        @Schema(title = "是否私有", description = "是否私有")
        private PrivateTypeEnum isPrivate;

        @Schema(title = "是否关联攻略文章", description = "是否关联攻略文章")
        private Integer isAssociatePlanContent;

        @Schema(title = "状态", description = "状态")
        private Integer status;

        @Schema(title = "是否允许评论", description = "是否允许评论")
        private Integer allowComment;

        @Schema(title = "主图", description = "主图")
        private String mainImg;

    }


    @Data
    public static class TravelGuide {
        /**
         * 城市体验
         */
        @Schema(title = "城市体验", description = "城市体验")
        private String cityExp;
        /**
         * 游玩体验
         */
        @Schema(title = "游玩体验", description = "游玩体验")
        private String playExp;
        /**
         * 出行体验
         */
        @Schema(title = "出行体验", description = "出行体验")
        private String travelExp;
        /**
         * 美食体验
         */
        @Schema(title = "美食体验", description = "美食体验")
        private String foodExp;
    }

    @Data
    public static class Suggest {
        /**
         * 旅游建议
         */
        @Schema(title = "旅游建议", description = "旅游建议")
        private String travelSuggest;
        /**
         * 安全建议
         */
        @Schema(title = "安全建议", description = "安全建议")
        private String securitySuggest;
        /**
         * 踩坑点
         */
        @Schema(title = "踩坑点", description = "踩坑点")
        private String defectSuggest;
        /**
         * 槽点
         */
        @Schema(title = "槽点", description = "槽点")
        private String disclose;
    }
}
